package br.com.bancoeXtreme.tratadoresxml;

import java.io.File;
import java.io.IOException;

import javax.swing.JFileChooser;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/** 
 * 
 * @author Fernando, Haron e Thiago
 * @version 1.0
 * @since Release 01
*/

public class TrataDeposito extends DefaultHandler {
		private String nomeArquivo = "";
		private String tag = "";
		private String valor = "";
		private String contadestino = "";
		
		
	public TrataDeposito(File file) {
		
		SAXParserFactory spf = SAXParserFactory.newInstance();
		SAXParser parser = null;
		
		try {
			parser = spf.newSAXParser();
			parser.parse(file,this);
			
		} catch (ParserConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SAXException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		
	}
	
	public void startDocument() {
	//	System.out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
	}
	
	public void endDocument() {
		Deposito dep = new Deposito(this.contadestino,this.valor);
		//dep.printDeposito();
		//System.out.println("</xml>");
	}
	
	public void startElement(String uri, String localName, String tag, Attributes atributos ){
		//System.out.println("<"+tag+">");
		this.tag = tag;	
	}
	
	public void endElement(String uri, String localName, String tag){
		//System.out.println("</"+tag+"> ");
		this.tag = "";
		
	}
	
	public void characters(char ch[], int start, int lenght) {
		String tmp = new String(ch,start,lenght);
		
		if(this.tag.equals("Valor")) {
			//System.out.print(tmp.trim());
			this.valor = tmp.trim();
			this.tag = "";
			tmp = "";
			
		} else
			if(this.tag.equals("Contadestino")) {
				//System.out.print(tmp.trim());
				this.contadestino = tmp.trim();
				this.tag = "";
				tmp = "";
			} 
	}
	
	public void printInfoDeposito() {
		System.out.println("Numero Conta: "+this.contadestino);
		System.out.println("Valor: "+ this.valor);
		
		
	}
	
	
	public String getNomeArquivo() {
		return nomeArquivo;
	}

	public void setNomeArquivo(String nomeArquivo) {
		this.nomeArquivo = nomeArquivo;
	}

	public String getTag() {
		return tag;
	}

	public void setTag(String tag) {
		this.tag = tag;
	}

	public String getValor() {
		return valor;
	}

	public void setValor(String valor) {
		this.valor = valor;
	}

	public String getContadestino() {
		return contadestino;
	}

	public void setContadestino(String contadestino) {
		this.contadestino = contadestino;
	}

	public static void main(String[] args) {
		//File file = new File("C:/Users/thiago/Documents/exemplotransacao.xml");
		//TrataDeposito td = new TrataDeposito(file);
		//td.printInfoDeposito();
	}

}
